/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package net.easoftware.code.beans.jpa;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import net.easoftware.code.beans.maintenance.annotation.DataTableColumn;
import org.eclipse.persistence.annotations.NamedStoredProcedureQuery;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

/**
 *
 * @author waumovil-javaengineer
 */
@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Table(name = "ordenca_store")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "OrdencaStore.findAll", query = "SELECT o FROM OrdencaStore o"),
    @NamedQuery(name = "OrdencaStore.findById", query = "SELECT o FROM OrdencaStore o WHERE o.id = :id"),
    @NamedQuery(name = "OrdencaStore.findByCompania", query = "SELECT o FROM OrdencaStore o WHERE o.compania = :compania"),
    @NamedQuery(name = "OrdencaStore.findByCodigo", query = "SELECT o FROM OrdencaStore o WHERE o.codigo = :codigo"),
    @NamedQuery(name = "OrdencaStore.findByNombre", query = "SELECT o FROM OrdencaStore o WHERE o.nombre = :nombre"),
    @NamedQuery(name = "OrdencaStore.findByNoorden", query = "SELECT o FROM OrdencaStore o WHERE o.noorden = :noorden")})
@NamedStoredProcedureQuery(  
    name = "procesarOrdenes",
procedureName = "procesarOrdenes",
returnsResultSet = false)
public class OrdencaStore implements Serializable {

    @DataTableColumn(order = 6, title = "Fecha Orden", name = "fechaorden")
    @Column(name = "fechaorden")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaorden;
    @Column(name = "fechafactura")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechafactura;
    @Size(max = 45)
    @Column(name = "tipo")
    private String tipo;
    @Size(max = 45)
    @Column(name = "prod1")
    private String prod1;
    @Size(max = 45)
    @Column(name = "prod2")
    private String prod2;
    @DataTableColumn(order = 5, title = "Documento", name = "doc")
    @Size(max = 45)
    @Column(name = "doc")
    private String doc;
    @DataTableColumn(order = 4, title = "Segmento", name = "seg")
    @Size(max = 45)
    @Column(name = "seg")
    private String seg;
    @Size(max = 45)
    @Column(name = "zonaventas")
    private String zonaventas;
    @Size(max = 45)
    @Column(name = "vendedor")
    private String vendedor;
    @Size(max = 45)
    @Column(name = "estado1")
    private String estado1;
    @Size(max = 45)
    @Column(name = "estado2")
    private String estado2;
    @Size(max = 45)
    @Column(name = "usuario")
    private String usuario;
    @Size(max = 45)
    @Column(name = "pterms")
    private String pterms;
    @Size(max = 45)
    @Column(name = "descripcion")
    private String descripcion;
    @Size(max = 45)
    @Column(name = "limite")
    private String limite;
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id")
    private Integer id;
    @DataTableColumn(order = 1, title = "Compania", name = "compania")
    @Column(name = "compania")
    private Integer compania;
    @Size(max = 45)
    @Column(name = "codigo")
    private String codigo;
    @Size(max = 45)
    @DataTableColumn(order = 3, title = "Nombre", name = "nombre")
    @Column(name = "nombre")
    private String nombre;
    @DataTableColumn(order = 2, title = "No. Orden", name = "noorden")
    @Size(max = 45)
    @Column(name = "noorden")
    private String noorden;
    @Column(name = "unidadnegocio")
    private Integer unidadnegocio;
    @Column(name = "lineanegocio")
    private Integer lineanegocio;
    @JoinColumn(name = "cargadatos", referencedColumnName = "id")
    @ManyToOne(optional = false)
    private Cargadatos cargadatos;
    @Column(name = "subtipo")
    private String subtipo;

    public String getSubtipo() {
        return subtipo;
    }

    public void setSubtipo(String subtipo) {
        this.subtipo = subtipo;
    }

    public OrdencaStore() {
    }

    public OrdencaStore(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getCompania() {
        return compania;
    }

    public void setCompania(Integer compania) {
        this.compania = compania;
    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getNoorden() {
        return noorden;
    }

    public void setNoorden(String noorden) {
        this.noorden = noorden;
    }

    public Cargadatos getCargadatos() {
        return cargadatos;
    }

    public void setCargadatos(Cargadatos cargadatos) {
        this.cargadatos = cargadatos;
    }

    public Integer getUnidadnegocio() {
        return unidadnegocio;
    }

    public void setUnidadnegocio(Integer unidadnegocio) {
        this.unidadnegocio = unidadnegocio;
    }

    public Integer getLineanegocio() {
        return lineanegocio;
    }

    public void setLineanegocio(Integer lineanegocio) {
        this.lineanegocio = lineanegocio;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += ( id != null ? id.hashCode() : 0 );
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!( object instanceof OrdencaStore )) {
            return false;
        }
        OrdencaStore other = (OrdencaStore) object;
        if (( this.id == null && other.id != null ) || ( this.id != null && !this.id.equals(other.id) )) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "net.easoftware.code.beans.jpa.OrdencaStore[ id=" + id + " ]";
    }

    public String getTipo() {
        return tipo;
    }

    public void setTipo(String tipo) {
        this.tipo = tipo;
    }

    public String getProd1() {
        return prod1;
    }

    public void setProd1(String prod1) {
        this.prod1 = prod1;
    }

    public String getProd2() {
        return prod2;
    }

    public void setProd2(String prod2) {
        this.prod2 = prod2;
    }

    public String getDoc() {
        return doc;
    }

    public void setDoc(String doc) {
        this.doc = doc;
    }

    public String getSeg() {
        return seg;
    }

    public void setSeg(String seg) {
        this.seg = seg;
    }

    public String getZonaventas() {
        return zonaventas;
    }

    public void setZonaventas(String zonaventas) {
        this.zonaventas = zonaventas;
    }

    public String getVendedor() {
        return vendedor;
    }

    public void setVendedor(String vendedor) {
        this.vendedor = vendedor;
    }

    public String getEstado1() {
        return estado1;
    }

    public void setEstado1(String estado1) {
        this.estado1 = estado1;
    }

    public String getEstado2() {
        return estado2;
    }

    public void setEstado2(String estado2) {
        this.estado2 = estado2;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getPterms() {
        return pterms;
    }

    public void setPterms(String pterms) {
        this.pterms = pterms;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public String getLimite() {
        return limite;
    }

    public void setLimite(String limite) {
        this.limite = limite;
    }

    public Date getFechaorden() {
        return fechaorden;
    }

    public void setFechaorden(Date fechaorden) {
        this.fechaorden = fechaorden;
    }

    public Date getFechafactura() {
        return fechafactura;
    }

    public void setFechafactura(Date fechafactura) {
        this.fechafactura = fechafactura;
    }
}
